package com.xhis.homenurse.tools;

import java.io.EOFException;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URISyntaxException;
import java.net.UnknownHostException;
import java.net.UnknownServiceException;

/**
 * 异常处理
 *
 * @author 张兵
 */
public class ExceptionProcess
{
    // 得到异常的信息；
    public static String getExceptionMessage(Exception ex)
    {
        ex.printStackTrace();
        if (ex.getClass() == SocketTimeoutException.class) {
            return "网络访问超时，请重试，如果多次出现此问题，请确认网络是否连接或者无线网络信号太弱。";
        }

        if (ex.getClass() == NullPointerException.class) {
            return "数据空引用错误。";
        }

        if (ex.getClass() == URISyntaxException.class) {
            return "不是有效的web服务地址。";
        }
        if (ex.getClass() == ConnectException.class) {
            return "无法连接到服务器，请检查网络连接和配置选项是否正确";
        }
        if (ex.getClass() == UnknownHostException.class) {
            return "无法解析该地址或服务器已关闭，请稍后重试";
        }
        if (ex.getClass() == UnknownServiceException.class) {
            return "网络连接失败，请确认网络是否连接或者无线网络信号太弱。\n" + ex.getClass().getName();
        }
        if (ex instanceof java.net.SocketException) {
            return "与服务器之间的通讯出现问题，请重试";
        }
        if (ex.getClass() == EOFException.class) {
            return "未获取数据，请刷新重试\n" + ex.getClass().getName();
        }
        return ex.getClass().getName() + "  " + ex.getMessage() + "\n" + ex.getLocalizedMessage();
    }

    //得到异常的信息
    public static String getThrowableMessage(Throwable ex)
    {
        ex.printStackTrace();
        if (ex.getClass() == SocketTimeoutException.class) {
            return "网络访问超时，请重试，如果多次出现此问题，请确认网络是否连接或者无线网络信号太弱。";
        }

        if (ex.getClass() == NullPointerException.class) {
            return "数据空引用错误。";
        }

        if (ex.getClass() == URISyntaxException.class) {
            return "不是有效的web服务地址。";
        }
        if (ex.getClass() == ConnectException.class) {
            return "无法连接到服务器，请检查网络连接和配置选项是否正确";
        }
        if (ex.getClass() == UnknownHostException.class) {
            return "无法解析该地址或服务器已关闭，请稍后重试";
        }
        if (ex.getClass() == UnknownServiceException.class) {
            return "网络连接失败，请确认网络是否连接或者无线网络信号太弱。\n" + ex.getClass().getName();
        }
        if (ex instanceof java.net.SocketException) {
            return "与服务器之间的通讯出现问题，请重试";
        }
        if (ex.getClass() == EOFException.class) {
            return "未获取数据，请刷新重试\n" + ex.getClass().getName();
        }
        if (ex.getClass() == ClassCastException.class) {
            return "数据解析失败，请刷新重试";
        }
        return ex.getClass().getName() + "  " + ex.getMessage() + "\n" + ex.getLocalizedMessage();
    }
}
